pregunta1
Como se observa en la grafica la casa identificada con el id 516 con un estilo de viviendo 1Fam (Unifamiiliar), y dicho terreno cuenta con una cantidad de 12220 de pies cuadrados, se encuentra a un precio de 402861 dolares, siendo la mas cara de las casas mas recientes. Cabe mencionar que esta casa fue construida en el año 2009. Ademas, cabe mencionar que las ultimas casas construidas tuvieron en su mayoria el mismo estilo de vivienda. Y se obtuvo que el promedio del tamaño de estas recientes casas es de 8929.9 dolares.
pregunta1.1
pie(slices,labels = lbls, col=rainbow(length(lbls)),
main="Porcentaje de casas remodeladas")
Como se observa en la grafica de pie el 52% de las casas registradas en la base de datos han sido remodeladas, la mayoria de estos debido a que fueron construidas desde hace años.
pregunta3
Como se observa la casa mas grande es la casa con identificador 314 con un precio de 375000 dolares. Sienda una vivienda de tipo 1Fam (Uni familiar), con una evaluacion de material de construccion de 7/10 siendo una puntuacion alta, y una puntuacion de 5/10 en condicion de la casa, siendo una nota relativamente baja, esto debido a que el año de construccion de esta casa es vieja, fue construida el año 1965 y no ha tenido remoledaciones, sin embargo su gran tamaño lo vale, liderando las casa con una cantidad de 215245 pies cuadrados equivalente a 19,996.91 metros cuadrados. Un dato curioso a mencionar es que estas 5 casas mas grandes, todas fueron construidas durante los años 50 o mas. Siendo construidas en los siguientes años, 1965, 1965, 1958, 1971, 1975. Sin embargo por su edad tiene una nota promedio de 5.6/10 demostrando que su edad afecta la estructura. No obstante, el tamaño promedio de estas 5 es de 1.44963^{5} pies cuadrados, equivalente a 13467.50 metros cuadrados.
pregunta4
Como se observa en la grafica la puntuacion mas alta la posee la vivienda 2fmCom que son casas para dos familias, y en segundo lugar se tienen las casas 1Fam casas para una familia. Sin embargo, en esta grafica vemos la puntuacion del estado de las casas, ahora veremos la calidad de acabados de cada tipo de vivienda.
pregunta4.1
En las ultimas dos graficas se demostro que las viviendas para dos familias tenian mejor puntuacion en temas de estado de la vivienda, sin embargo, la ultima grafica demostro que las viviendas con mejores acabados son las viviendas TwnhsE que son las casas adosadas. Y nuevamente en segundo lugar las casas unifamiliar.
pregunta1A
Como se puede observar en la grafica de barras anterior, la cada que mas valor ha tenido es la que se encuentra con el Id 692, siendo la propiedad con mayor precio de venta, con un precio de 755000 dolares, seguido con la propiedad 1183 con un precio de venta de 745000
pregunta2A
La grafica antes vista tiene una forma bastante vistosa, como se puede apreciar el estilo de vivienda mas vendido es 1Story, la cual sobre sale con una cantidad extremadamente vistosa y para aclararlo este estilo hace referencia a que la casa cuenta con un solo piso o un solo nivel. El estilo que le continua es 2Story, por lo que se sabe que el estilo que le continua es de dos niveles.
pregunta3A
En la grafica anterior, claramente se puede apreciar que la diferencia es abrupta en el metodo o el tipo de venta de la propiedad, dicho metodo es el WD, el cual quitando la abreviatura seria: “Warranty Deed”, o traducido, con garantia escrita, lo que se conoce como el metodo convencional o tradicional.
pregunta4A
La variable, condiciones de venta hace referencia a bajo que cirscuntancias fue vendida la propiedad, en este caso existen 6 tipos de condiciones, pero, como se puede apreciar en la grafica anterior, la condicion en la que se vende mayormente es de Normal, lo cual es considerado como lo Normal, la condicion que le sigue, es Partial, el cual es parcial, lo que hace referencia a que la casa aun no estaba completa cuando fue comprada, esto es mayormente con las casas nuevas.
pregunta5A
Como se puede apreciar en la grafica anterior, el mes que cuenta con los mayores registros de ventas en el numero 6, o lo que es igual a Junio, seguido del mes 7, lo que es Julio.
pie(table_zona, labels = lbls, col=rainbow(length(lbls)), main="")
Del gráfico de pie anterior, se puede concluir que la zona en que más ventas se han realizado es RL con un 79%, lo que significa que la zona Residential Low Density es donde han ocurrido la mayoría de las ventas, siendo 1151 ventas de 1460 ventas realizadas en total.
pie(table_calle, labels = lbls1, col=rainbow(length(lbls1)), main="")
En base al gráfico anterior, se concluye que la mayoría de las viviendas cuentan con una carretera de acceso pavimentada, siendo una cantidad de 1454 viviendas con carretera pavimentada, dejando unas 6 viviendas con carretera de grava.
pregunta3E
En el gráfico observamos que de todas las ventas, las viviendas de forma regular son las que más se han vendido. de 1460 viviendas, 925 tienen forma regular (Reg), 484 tienen forma ligeramente irregular (IR1), 41 tienen forma moderadamente irregular (IR2) y 10 tienen forma irregular (IR3).
LotFrontage: Pies lineales de calle conectados a la propiedad.
scatter.smooth(data$LotFrontage, data$SalePrice)
LotArea: Tamaño del lote en pies cuadrados.
scatter.smooth(data$LotArea, data$SalePrice)
BsmtUnfSF: Pies cuadrados sin terminar del área del sótano.
scatter.smooth(data$BsmtUnfSF, data$SalePrice)
TotalBsmtSF: Pies cuadrados totales del área del sótano.
scatter.smooth(data$TotalBsmtSF, data$SalePrice)
1stFlrSF: Pies cuadrados del primer piso.
scatter.smooth(data$X1stFlrSF, data$SalePrice)
GrLivArea: Pies cuadrados de superficie habitable sobre el nivel del suelo (suelo).
scatter.smooth(data$GrLivArea, data$SalePrice)
GarageArea: Tamaño del garaje en pies cuadrados.
scatter.smooth(data$GarageArea, data$SalePrice)
#### -Cualitativas:
YearBuilt: Fecha original de construcción.
scatter.smooth(data$YearBuilt, data$SalePrice)
YearRemodAdd: Fecha de remodelación (igual que la fecha de construcción si no hay remodelaciones ni adiciones).
scatter.smooth(data$YearRemodAdd, data$SalePrice)
GarageYrBlt: Año de construcción del garaje.
scatter.smooth(data$GarageYrBlt, data$SalePrice)
MoSold: Mes vendido (MM).
scatter.smooth(data$MoSold, data$SalePrice)
Las gráficas anteriores nos ayuda a determinar qué tanta correlación existe entre cada una de las variables y el precio de venta de la vivienda. Mientras más cerca los puntos estén de la línea, mayor es la correlación.
De estas gráficas se puede concluir que las variables seleccionadas están lo suficientemente relacionadas con el precio de venta.. Se tomó en cuenta cada variable para determinar si es prudente usarlas en todos los casos o no, para evitar análisis innecesarios e irrelevantes.
Para esta seccion fue necesario establecer el porcentaje de datos que utilizara cada conjunto, donde el 70% de datos sera para los datos de prueba y el; 30% para los datos de entrenamiento. Cabe mencionar, que las variables puestas a prueba son las variables numericas
#Definimos el porcentaje de datos de prueba
porcentaje <- 0.7
#Ya que lo que deseamos es que el experimento sea repetible asignamos una semilla
set.seed(123)
#Calculo de percentiles
percentil <- quantile(data$SalePrice)
#Percentiles
estado<-c('Estado')
data$Estado<-estado
#Economica=0
#Intermedia=1
#Cara=2
data <- within(data, Estado[SalePrice<=129975] <- 0)
data$Estado[(data$SalePrice>129975 & data$SalePrice<=163000)] <- 1
data$Estado[data$SalePrice>163000] <- 2
#Regresion
corte <- sample(nrow(data),nrow(data)*porcentaje)
#Creamos nuestros datos de prueba y entrenamiento
train<-data[corte,]
test<-data[-corte,]
#Regresion lineal
fitLMPW<-lm(SalePrice~ ., data = train[,c("GrLivArea","YearBuilt","BsmtUnfSF","TotalBsmtSF","GarageArea","YearRemodAdd", "SalePrice","LotArea")])
predL<-predict(fitLMPW, newdata = test)
#Verificando la predicci?n
resultados<-data.frame(test$SalePrice,predL)
pregunta2<-head(resultados, n=5)
grafica1<-ggplot(data=train,mapping = aes(x=SalePrice,y=GrLivArea ))+
geom_point(color='red',size=2)+
geom_smooth(method = 'lm',se=TRUE,color='black')+
labs(title = 'Precio de venta ~ Pies cuadrados de vivienda',x="Precio de venta",y='Pies cuadrados de venta')+
theme_bw()+theme(plot.title = element_text(hjust = 0.5))
pregunta2
## test.SalePrice predL
## 1 208500 221168.7
## 3 223500 227475.4
## 7 307000 257880.7
## 14 279500 235937.2
## 15 157000 143342.6
En la tabla mostrada anteriormente, se observa que la predicción de los precios de las casas no se alejan mucho de los precios verdaderos, por lo que se concluye que las variables seleccionadas para realizar la predicción tiene correlación con el precio de la casa, y por consiguiente el modelo está bien.
pairs(data$SalePrice ~ data$GrLivArea)
Con este gráfico se puede decir que la variable GrLivArea es la mejor que se puede utilizar porque tiene una correlacion de 0.7086245 siendo muy cercana a 1.
pairs(data$SalePrice ~ data$YearBuilt)
Ahora con la variable YearBuilt se ve que no hay mucha correlación (0.5228973), sin embargo aporta significativamente al modelo.
pairs(data$SalePrice ~ data$BsmtUnfSF)
Respecto a la variable BsmtUnfSF, se observa que no posee una buena correlacion, teniendo una correlacion de 0.2144791.
pairs(data$SalePrice ~ data$TotalBsmtSF)
La correlación de la variable TotalBsmtSF tiene una correlacion de
0.6135806 siendo mejor que la anterior, ya que nuevamente esta muy
cercana a 1.
pairs(data$SalePrice ~ data$GarageArea)
La variable GarageArea también es útil porque tiene una correlación 0.6234314
pairs(data$SalePrice ~ data$YearRemodAdd)
Con respecto a la variable YearRemodAdd, la correlación es de 0.507101, indicando que puede llegar a ser util, ya que posee una correlacion mayor a 0.5.
pairs(data$SalePrice ~ data$LotArea)
La variable LotArea tiene una correlación de 0.2638434 demostrando que esta no es una buena variable para la regresion lineal.
ggplot(data=train,mapping = aes(x=SalePrice,y=GrLivArea ))+
geom_point(color='red',size=2)+
geom_smooth(method = 'lm',se=TRUE,color='black')+
labs(title = 'Precio de venta ~ Pies cuadrados de vivienda',x="Precio de venta",y='Pies cuadrados de venta')+
theme_bw()+theme(plot.title = element_text(hjust = 0.5))
## `geom_smooth()` using formula = 'y ~ x'
Como se observa en la grafica, mediante la variable con mayor correlacion, en este caso es la variable, GrLivArea. Logramos obtener el modelo lineal, el cual la linea es la que nos minizima el error medio cuadrado. Ademas, como se observa en la grafica, se observa que muchos datos no se encuentran sobre la linea, indicando que no existe overfitting, ya que para que ello exista, se tendria todos los puntos sobre la linea, lo cual como se observa no tenemos.
Los residuales se calculan restando del valor de y ajustado del valor de y. Usando una ecuacion podemos predecir el precio de la venta de las casas para el conjunto de pruebas.
summary(predL)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 24553 129962 177372 178656 223399 398533
summary(test$SalePrice)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 34900 130000 167500 181337 214600 625000
Como se observa mediante el summary de ambas variables, tanto en la variable que predijo y la variable del testeo, se demuestra que obtuvimos una buena prediccion, ya que segun el resumen, tenemos varios datos similares, tal como se observa en el promedio. Ahora veamos esto graficamente.
plot(fitLMPW)
En la grafica Residuals vs Fitte, se muestra los
residuos estandarizados contra el modelo lineal, y tal como se observa,
no se posee algun patron de datos demostrando que son aleatorios.
En la grafica Normal Q-Q logramos observar que los datos son normales, cabe mencionar que se posee algunos datos atipicos, sin embargo, la mayoria son normales.
En la grafica Scale-Location vemos que los datos siguen siendo normales y cercanos a la linea, ademas de no observar algun patron.
Y nuevamente en la grafica Residuals vs Leverage, no se presenta patron alguno.
boxplot(fitLMPW$residuals)
Como se observa en la grafica , la caja no se encuentra centrada ademas
de contar con muchos datos atipicos, por ello es necesario modificar el
modelo. Eliminando varios datos atipicos.
boxplot(fitLMPW2, main = "Sin datos atipicos",col=6)
hist(fitLMPW2)
Tras eliminar los datos atipicos se observa que tenemos una mejor
distribucion de los datos, en donde la caja se encuentra centrada y
ademas tenemos un histograma con una distribucion normal.
plot(test$SalePrice, test$LotArea)
points(predL, test$LotArea, col="red",pch=15)
Como se observa en la grafica anterior podemos ver los puntos predichos,
demostrando que tiene una buena prediccion.
Realmente si hacemos un analisis desde el comienzo del modelo, podemos comprobar que el modelo tuvo una gran efectividad, si bien es cierto que tomamos variables muy especificas, el modelo tuvo no un desempeño perfecto, pero si algo notable y si vemos la grafica anterior:
plot(test$SalePrice, test$LotArea)
points(predL, test$LotArea, col="red",pch=15)
Los puntos que se encuentran en rojo son todos los datos que logras precedir, y los puntos “normales” son los puntos reales, como podemos ver, son pocos los puntos que muestran una variacion muy amplia, en si podriamos decir que los puntos mas variados son puntos atipicos, pero, eso si, cabe destacar que toda la estimacion se hace en base a LotArea y si nos regresamos a la tabla siguiente:
pregunta2
## test.SalePrice predL
## 1 208500 221168.7
## 3 223500 227475.4
## 7 307000 257880.7
## 14 279500 235937.2
## 15 157000 143342.6
Podemos observar que contamos con, como mayor distancia 100,000 en cada dato, por lo que, para ser una estimacion no esta absolutamente nada mal, si podemos mencionar algo, es que muy probablemente, si queremos una estimacion mucha mas aceptada, o por lo menos acortar la distancia entre datos, lo mas seguro es que lo lograriamos agregando muchas mas varibales (variables numericas) posiblemente podriamos tener un acierto mucho mayor, aunque tambien podria influir en que pueden haber muchos datos repetidos. Pero, siendo realistas, posiblemente si se pudieran realizar mas modelos, o crear desde cero una comparativa directa de cada metodo, seria una forma mucho mas facil y correcta de poder determinar los fallos, o bien tener un mejor acierto.
Si nos basamos en el coeficiente de correlacion de Spearman:
cor(data$SalePrice,data[,c("GrLivArea","YearBuilt","BsmtUnfSF","TotalBsmtSF","GarageArea","YearRemodAdd","LotArea")], method = "spearman")
## GrLivArea YearBuilt BsmtUnfSF TotalBsmtSF GarageArea YearRemodAdd
## [1,] 0.7313096 0.6526815 0.1851966 0.6027254 0.6493785 0.571159
## LotArea
## [1,] 0.4564606
Como podemos ver, nuestro dato es de 0.708, que podemos obtener de eso, como bien sabemos el correlativo de Spearman mide la fuerza y la direccion nde la asociacion entre dos variables para determinar justamente la correlacion de ambas, en este caso nosotros decimos que la relacion entre el precio de la casa debe de ser correlativo a el LivArea, pero, para poder expresar mejor esta diferncia, veamos los siguientes ejemplos:
cor(data$SalePrice,data$YearBuilt, method = "spearman")
## [1] 0.6526815
Como podemos ver, esta correlacion esta muy justa y si lo vemos asi, esta peor que la relacion que tenemos seleccionada, asi mismo podemos intentar hacer la correlacion con otra variable, como por ejemplo:
cor(data$SalePrice,data$GarageArea, method = "spearman")
## [1] 0.6493785
Como podemos ver, en este caso la correlacion es mayor, pero aun asi no supera la correlacion inicial.
Si comparamos los metodos y tomando en cuenta el tiepo trabajado en ambas, se podria de decir que el metodo de la evaluacion de varias variables es mas efectivo dado que las variables tienen mayor correlacion, esto se explica con las graficas del punto 3 dado que se analizan varias variables y todas presentaron resultados bastante buenos.